// demo.js
import { upsertSnapshots, getLatestSnapshot, getHistory } from "./repo.js";
import { testConnection } from "./db.js";

const sample = [
  {
    查询组: "广深-安徽",
    日期: "2025-09-24",
    车次: "G2691",
    出发地: "惠东南",
    到达地: "安庆",
    出发时间: "10:55",
    到达时间: "17:58",
    余票席位: { 二等座: "8", 无座: "有" },
  },
  {
    查询组: "广深-安徽",
    日期: "2025-09-24",
    车次: "G2694",
    出发地: "深圳北",
    到达地: "安庆",
    出发时间: "11:40",
    到达时间: "17:58",
    余票席位: { 二等座: "有", 无座: "16" },
  },
  {
    查询组: "广深-安徽",
    日期: "2025-09-24",
    车次: "G2694",
    出发地: "深圳北",
    到达地: "太湖南",
    出发时间: "11:40",
    到达时间: "17:27",
    余票席位: { 二等座: "7", 无座: "16" },
  },
];

async function main() {
  // quick DB smoke test
  const ok = await testConnection();
  if (!ok) {
    console.error("❌ 无法连接到数据库，请检查 .env 配置并确保数据库可访问。");
    process.exit(1);
  }

  const snapshotAt = new Date(); // 这一批的写入时间（同一时刻）

  // 写入
  await upsertSnapshots(sample, snapshotAt);
  console.log("✅ 写入完成");

  // 查“最新一次”
  const latest = await getLatestSnapshot(
    "G2694",
    "深圳北",
    "太湖南",
    "2025-09-24"
  );
  console.log("最新快照:", latest);

  // 查“历史（最近2小时）”
  const now = new Date();
  const twoHoursAgo = new Date(now.getTime() - 2 * 60 * 60 * 1000);
  const hist = await getHistory(
    "G2694",
    "深圳北",
    "太湖南",
    "2025-09-24",
    twoHoursAgo,
    now
  );
  console.log(`历史(${hist.length}条):`, hist);
}

main().catch((err) => {
  console.error(err);
  process.exit(1);
});
